'use strict';
const dayjs = require("dayjs");
const {getDefaultModelConfig} = require("../../utils/common");
const { formatDate } = require("../../utils/index");

module.exports = app => {
    const { STRING, INTEGER, DATE, TINYINT, TEXT, DECIMAL } = app.Sequelize;
    return app.model.define(
        'EmploymentSubsidy',
        {
            id: {type: INTEGER, primaryKey: true, autoIncrement: true},
            name: STRING(50), // 姓名
            id_card: STRING(18), // 身份证号码
            gender: {type: STRING, defaultValue: '', comment: '性别：男，女'}, // 性别
            phone: STRING(11), // 联系电话
            graduation_date: {
                type: DATE,
                get() {
                    return formatDate(this.getDataValue('graduation_date'), 'YYYY-MM-DD');
                }
            }, // 毕业时间
            school: STRING(100), // 毕业院校
            education: STRING(50), // 学历
            company: STRING(200), // 就业企业
            first_insurance_date: {
                type: DATE,
                get() {
                    return formatDate(this.getDataValue('first_insurance_date'), 'YYYY-MM-DD');
                }
            }, // 首次参保时间
            company_address: STRING(255), // 企业地址
            residential_address: STRING(255), // 常住地址
            contract_start_date: {
                type: DATE,
                get() {
                    return formatDate(this.getDataValue('contract_start_date'), 'YYYY-MM-DD');
                }
            }, // 劳动合同开始日期
            contract_end_date: {
                type: DATE,
                get() {
                    return formatDate(this.getDataValue('contract_end_date'), 'YYYY-MM-DD');
                }
            }, // 劳动合同结束日期
            subsidy_date: {
                type: DATE,
                get() {
                    return formatDate(this.getDataValue('subsidy_date'), 'YYYY-MM-DD');
                }
            }, // 补贴时间
            subsidy_count: {type: INTEGER, defaultValue: 1, comment: '申请补贴次数'}, // 申请补贴次数
            subsidy_standard: STRING(100), // 补贴标准
            subsidy_amount: {type: DECIMAL(10,2), defaultValue: 0, comment: '补贴金额'}, // 补贴金额
            bank_name: STRING(100), // 开户银行
            bank_account: STRING(30), // 银行账号
            status: {type: TINYINT, defaultValue: 0, comment: '审核状态：0-待审核，1-审核通过，2-审核拒绝'}, // 审核状态
            review_remark: TEXT, // 审核备注
            reviewer: STRING(50), // 审核人
            ...getDefaultModelConfig(app)
        },
        {
            tableName: 'employment_subsidy',
            timestamps: true,
            createdAt: 'create_time',
            updatedAt: 'update_time'
        }
    );
};
